package com.ops.repository;

import com.ops.entity.Fault;
import com.ops.entity.OpsTask;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;

/**
 * 故障记录数据访问接口
 */
public interface FaultRepository extends JpaRepository<Fault, Long> {
    /**
     * 根据报告UUID、医院ID和需求年份查询故障记录列表，按故障日期降序排序
     * @param reportUuid 报告UUID
     * @param hospitalId 医院ID
     * @param demandYear 需求年份
     * @return 故障记录列表
     */
    List<Fault> findByReportUuidAndHospitalIdAndDemandYearOrderByFaultDateDesc(
        String reportUuid,
        String hospitalId,
        String demandYear
    );

    /**
     * 根据报告UUID查询所有故障记录
     * @param reportUuid 报告UUID
     * @return 故障记录列表
     */
    List<Fault> findByReportUuid(String reportUuid);

    /**
     * 根据报告UUID、队列ID、医院ID和需求年份查询单条故障记录
     * @param reportUuid 报告UUID
     * @param queueId 队列ID
     * @param hospitalId 医院ID
     * @param demandYear 需求年份
     * @return 故障记录
     */
    Optional<Fault> findByReportUuidAndQueueIdAndHospitalIdAndDemandYear(String reportUuid, String queueId, String hospitalId, String demandYear);

    /**
     * 根据报告UUID删除故障记录
     * @param reportUuid 报告UUID
     */
    void deleteByReportUuid(String reportUuid);
}